Information services and data processing industries in general have rapidly expanded as a result of the need for computer systems to manage and store large amounts of data. As an example, financial service companies such as banks, mutual fund companies and the like now, more than ever before, require access to many hundreds of gigabytes or even terabytes of data and files stored in high capacity data storage systems. Other types of service companies have similar needs for data storage.
Data storage system developers have responded to an increased need for storage by integrating high capacity data storage systems, data communications devices (e.g., switches), and computer systems (e.g., host computers or servers) into networks called “storage networks” or “Storage Area Networks” (SANs.) In general, a storage area network is a collection of data storage systems that are networked together via a switching fabric to a number of host computer systems operating as servers. The host computers access data stored in the data storage systems on behalf of client computers that request data from the data storage systems. For example, according to conventional applications, upon receiving a storage access request, a respective host computer in the storage area network accesses a large repository of storage through the switching fabric of the storage area network on behalf of the requesting client. Thus, via the host computer (e.g., server), a client has access to the shared storage system through the host computer. In many applications, storage area networks support high-speed acquisitions of data so that the host servers are able to promptly retrieve and store data from the data storage system.
Conventional storage area network management applications typically include a graphical user interface (GUI) that enables a network manager to graphically manage, control, and configure various types of hardware and software resources associated with a corresponding managed storage area network. For example, one conventional storage management application generates a graphical user interface utilized by a storage administrator to graphically select, interact with, and manage local or remote devices and software processes associated with the storage area network. Based on use of the graphical user interface in combination with an input device such as a hand operated mouse and corresponding pointer displayed on a viewing screen, a storage administrator is able to manage hardware and software entities such as file systems, databases, storage devices, volumes, peripherals, network data communications devices, etc., associated with the storage area network. Consequently, a storage management station and associated management software enables a storage administrator (a person responsible for managing the storage network) to manage the storage area network and its resources.
One way of managing resources associated with the storage area network is to maintain so-called managed objects. In general, a managed object is a software entity that defines a corresponding hardware or software resource of the storage area network. The network administrator utilizes the managed objects to identify different resources associated with the storage area network.
A set of managed objects can form an object hierarchy. A “top level” object (e.g., an object at a highest tier) associated with the hierarchy represents a particular storage resource (e.g., storage system) in the storage area network. Objects in the hierarchy beneath the “top level” object represent hardware or software resources of the storage area network associated with the particular storage resource. Accordingly, a hierarchy of managed objects can define specific resources and corresponding sub-resources in the storage area network associated with a respective storage system.
A storage administrator typically configures the storage area network to include multiple storage systems by creating and maintaining multiple object hierarchies. As suggested above, each object hierarchy represents a unique storage system (e.g., portion of storage area network resource information) associated with the storage area network. Certain resources can be shared among multiple storage systems. Thus, multiple object hierarchies associated with the storage area network can include the same managed object. Other resources of the storage area network can be exclusive to a particular one of the defined storage systems.
Typically, each managed object (e.g., storage area network resource) of the storage area network has associated object data. According to one conventional application, object data associated with respective managed objects is stored in a relational database. Upon instantiation, mapping metadata provides an indication how to populate managed objects with corresponding object data retrieved from the relational database.
Enterprise Storage Networks or Storage Area Networks (SANs) are large and complex environments that include various elements such as storage arrays, switches, hosts and databases all inter-networked. These elements may exist in number by the hundreds in large installations of such environments. These elements in turn may consist of several hundred or thousands of manageable elements or managed resources such as storage devices, storage and switch ports, database instances, host devices and file systems, and the like. Management of such environments is a daunting task and typically requires Storage Resource Management solutions such as EMC's Control Center (ECC) family of products, available from EMC Corporation of Hopkinton, Mass.
One configuration of ECC includes agents that are deployed on host computer systems in a SAN for the purpose of gathering data about the various managed resources in the SAN. The agents periodically collect network management data on components such as hosts, switches and storage systems that process and persist data, as well as on applications that use persisted information to enable the management of these environments. In other words, agents collect data associated with the managed resources, and that data is inserted into databases for use within Storage Resource Management solutions, such as ECC. ECC identifies the entire process of retrieving the collected data from agents to data persistence as a transaction. Agents collect data periodically, such as nightly, on the resources and engage in a transaction to send the colleted data to the ECC repository for access by ECC applications such as console and server processes that allow SAN administrators to manage the SAN.
In the ECC management application, an agent collects data associated with the managed resources such as data storage systems, hosts, switches and the like. When managed object data is inserted into the production database, that data can be displayed on the console for the network manager to view. In some instances, a set of managed object data collected by an agent from a resource such as a Symmetrix™ disk array system is a very large amount of data to be placed into the production database. In this situation, the agent divides the collected set of data into manageable partitions prior to being transmitted to the production database. The agent then serially transmits each partition, one by one, to a store process for placement into the production database (e.g., a master database) for storage. For large collections of such data, the agent transmits the data to the store process that performs a staging operation on the data in a staging database prior to making the data available to the server and console processes within the production database. One purpose of staging is to account for the time it takes the agent to transmit all partitions of a transaction between the agent and the store process. When the data from the agent is fully transferred to the store process (i.e. the last partition is received for a transaction) and is complete in the staging database, the last part of the staging operation causes the data in the staging database to be copied to the production database where the data is inserted for access by the management application (e.g. the server and console processes).